/**
 * Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时，旨在使 JavaScript 能够在服务器端运行。它允许开发者使用 JavaScript 编写服务器端应用程序，并且具有非阻塞、事件驱动的特性。以下是 Node.js 的基本介绍和使用总结。
  一、基本介绍
   1. 什么是 Node.js？
  - JavaScript 运行时：Node.js 是一个开源的、跨平台的 JavaScript 运行时，主要用于构建网络应用程序。
  - 基于事件驱动：Node.js 使用事件驱动的架构，使其在处理 I/O 操作时非常高效。
  - 非阻塞 I/O：Node.js 的非阻塞 I/O 模型使得它能够处理大量并发连接，而不会因为等待 I/O 操作而阻塞其他操作。

   2. 主要特点
  - 高性能：基于 Chrome 的 V8 引擎，具有极高的执行速度。
  - 单线程：虽然是单线程，但通过事件循环和回调机制，能够处理大量的并发请求。
  - 模块化：使用 CommonJS 模块规范，使得代码可重用性高。
  - 丰富的生态系统：通过 npm（Node Package Manager）提供了丰富的第三方模块和库，极大地扩展了 Node.js 的功能。

  二、基本使用
   1. 安装 Node.js
  可以从 [Node.js 官网](https://nodejs.org/) 下载并安装适合你操作系统的版本。安装完成后，可以通过以下命令检查安装是否成功：
  node -v
  npm -v
   2. 创建一个简单的 HTTP 服务器

  以下是一个使用 Node.js 创建简单 HTTP 服务器的示例：
  const http = require('http');

  const hostname = '127.0.0.1';
  const port = 3000;

  const server = http.createServer((req, res) => {
    res.statusCode = 200;
    res.setHeader('Content-Type', 'text/plain');
    res.end('Hello, World!\n');
  });

  server.listen(port, hostname, () => {
    console.log(`服务器运行在 http://${hostname}:${port}/`);
  });
   3. 运行 Node.js 程序

  将上述代码保存为  `server.js` ，然后在终端中运行以下命令：
  node server.js
  打开浏览器，访问  `http://127.0.0.1:3000/` ，你将看到 "Hello, World!" 的输出。

   4. 使用 npm 管理依赖

  Node.js 附带了 npm（Node Package Manager），用于管理项目的依赖包。可以使用以下命令初始化一个新的 Node.js 项目：
  npm init
  然后按照提示填写项目的基本信息。创建完成后，会生成一个  `package.json`  文件，用于管理项目的依赖。

   5. 安装第三方库

  例如，安装 Express.js（一个流行的 Node.js Web 应用框架）：
  npm install express
  安装后，可以在项目中使用 Express.js：
  const express = require('express');
  const app = express();
  const port = 3000;

  app.get('/', (req, res) => {
    res.send('Hello, Express!');
  });

  app.listen(port, () => {
    console.log(`服务器运行在 http://localhost:${port}/`);
  });
  三、总结
  - Node.js 是一个基于事件驱动的 JavaScript 运行时，适用于构建高性能的网络应用。
  - 非阻塞 I/O 和 单线程 的模型使得 Node.js 能够处理大量并发请求。
  - npm 提供了丰富的第三方库和工具，极大地扩展了 Node.js 的功能。
  - Node.js 适合用于构建实时应用、API 服务、微服务等多种场景。
  
  // 1. Node.js 是一个基于事件驱动的 JavaScript 运行时，适用于构建高性能的网络应用。
  // 2. 非阻塞 I/O 和 单线程 的模型使得 Node.js 能够处理大量并发请求。
  // 3. npm 提供了丰富的第三方库和工具，极大地扩展了 Node.js 的功能。
  // 4. Node.js 适合用于构建实时应用、API 服务、微服务等多种场景。
 * 
 */

  // 1. node的打印输出
  console.log("Hello, World!");
  const num1 = 10
  const num2 = 20
  console.log(num1 + num2)

  // 2. 给程序输入内容
  const arg1 = process.argv[2]
  const arg2 = process.argv[3]
  console.log(arg1, arg2);

  setTimeout(() => {
    console.clear()
    // console.trace()
  }, 3000)
  
  


